package com.zdkj.subway.support.util;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class RoleCheckUtils {

    /**
     * 中心副站长
     */
    public final static int ZXFZZ_ROLE_CODE = 2;
    /**
     * 中心站长
     */
    public final static int ZXZZ_ROLE_CODE = 3;
    /**
     * 收益审核技术人员
     */
    public final static int SYSHJSRY_ROLE_CODE = 29;
    /**
     * 票务管理技术人员
     */
    public final static int PWGLJSRY_ROLE_CODE = 63;
    /**
     * 站务车间票服管理技术人员
     */
    public final static int ZWPWGL_ROLE_CODE = 14;

    /**
     * 票卡管理技术人员
     */
    public final static int PKGLJSRY_ROLE_CODE = 16;

    /**
     * 设备部技术人员
     */
    public final static int SBBJSRY_ROLE_CODE = 23;

    private static final Set<Integer> belongToLineRoleCodes = new HashSet<>();
    private static final Set<Integer> stationRoleCodes = new HashSet<>();

    static {
        belongToLineRoleCodes.add(SYSHJSRY_ROLE_CODE);
        belongToLineRoleCodes.add(PWGLJSRY_ROLE_CODE);
        belongToLineRoleCodes.add(ZWPWGL_ROLE_CODE);
        belongToLineRoleCodes.add(PKGLJSRY_ROLE_CODE);
        belongToLineRoleCodes.add(SBBJSRY_ROLE_CODE);
    }

    static {
        stationRoleCodes.add(ZXFZZ_ROLE_CODE);
        stationRoleCodes.add(ZXZZ_ROLE_CODE);
    }

    /**
     * 校验部门人员角色
     * @param roleCodeList
     * @return
     */
    public static boolean belongToLineContainsRoleCode(List<Integer> roleCodeList) {
        for (int roleCode : roleCodeList) {
            if (belongToLineRoleCodes.contains(roleCode)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 校验车站人员角色
     * @param roleCodeList
     * @return
     */
    public static boolean stationContainsRoleCode(List<Integer> roleCodeList) {
        for (int roleCode : roleCodeList) {
            if (stationRoleCodes.contains(roleCode)) {
                return true;
            }
        }
        return false;
    }
}
